************Initial setting**************
# load packages
library(shiny)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## √ ggplot2 3.3.2 √ purrr 0.3.4
## √ tibble 3.0.4 √ dplyr 1.0.2
## √ tidyr 1.1.2 √ stringr 1.4.0
## √ readr 1.4.0 √ forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(DBI)
library(RSQLite)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# load dependency
#setwd('COVID-Trends-on-Twitter/')
source('function-db.R',encoding = 'UTF-8')
source('function-pt.R',encoding = 'UTF-8')
dbpathT='Covid-tweets-en.db'
dbpathR='Covid-reddit-en.db'
connT=dbConnect(SQLite(),dbpathT)
connR=dbConnect(SQLite(),dbpathR)
************Normal Reddit trends**************
# spread data
covid=read.csv('us_covid19_daily.csv')%>%select(date,positiveIncrease)
# a list of groups of keywords
keywords1='Mask#N95#口罩'
keywords2='lockdown#stay home'
keywords1=keywords1%>%str_split('#')%>%.[[1]]
keywords2=keywords2%>%str_split('#')%>%.[[1]]
keyword=list(keywords1,keywords2)
# a list of groups of data
trend1=keyword[[1]]%>%{getRedditTrend(connR,keywords=.,period=NULL)}
trend2=keyword[[2]]%>%{getRedditTrend(connR,keywords=.,period=NULL)}
trend=list(trend1,trend2)
# examples
trendPlot(covid,keyword[[1]],trend[[1]])
trendPlot(covid,keyword[[2]],trend[[2]])
trendsPlot(covid,keyword,trend)
## Warning: Can't display both discrete & non-discrete data on same axis
************Finial cleaning**************
dbDisconnect(connT)
dbDisconnect(connR)
rm(connR,connT,covid,keyword,trend,trend1,trend2)
rm(dbpathR,dbpathT,keywords1,keywords2)
rm(geoTrendMap,geoTrendPlot,trendPlot,trendsPlot)
rm(getRedditData,getRedditTrend,getTwitterData,getTwitterTrend)
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 1409709 75.3 2642034 141.1 2642034 141.1
## Vcells 2786701 21.3 8388608 64.0 7630722 58.3